package com.reactim.message.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

/**
 * 连接管理配置类
 * 从ReactimConfig中获取连接管理相关配置
 * 保持向后兼容性的适配器类
 */
@Configuration
@Data
public class ConnectionConfig {
    
    @Autowired
    private ReactimConfig reactimConfig;
    
    /**
     * 获取连接过期时间（分钟）
     */
    public int getExpirationTime() {
        return reactimConfig.getConnection().getExpirationTime();
    }
    
    /**
     * 获取清理任务执行间隔（分钟）
     */
    public int getCleanupInterval() {
        return reactimConfig.getConnection().getCleanupInterval();
    }
    
    /**
     * 是否启用分布式连接存储
     */
    public boolean isDistributedStorage() {
        return reactimConfig.getConnection().isDistributedStorage();
    }
    
    /**
     * 获取Redis配置
     */
    public ReactimConfig.ConnectionProperties.RedisProperties getRedis() {
        return reactimConfig.getConnection().getRedis();
    }
    
    /**
     * 获取安全配置
     */
    public ReactimConfig.ConnectionProperties.SecurityProperties getSecurity() {
        return reactimConfig.getConnection().getSecurity();
    }
    
    /**
     * 获取监控配置
     */
    public ReactimConfig.ConnectionProperties.MonitoringProperties getMonitoring() {
        return reactimConfig.getConnection().getMonitoring();
    }
    
    /**
     * 获取缓存配置
     */
    public ReactimConfig.ConnectionProperties.CacheProperties getCache() {
        return reactimConfig.getConnection().getCache();
    }
    
    /**
     * 获取故障恢复配置
     */
    public ReactimConfig.ConnectionProperties.FaultRecoveryProperties getFaultRecovery() {
        return reactimConfig.getConnection().getFaultRecovery();
    }
}